/*
 * File:   GenericListTest.h
 * Author: Enrique Antezana
 *
 * Created on 17-04-2013, 04:31:00 PM
 */

#ifndef GENERICLISTTEST_H
#define	GENERICLISTTEST_H

#include <cppunit/extensions/HelperMacros.h>

class GenericListTest : public CPPUNIT_NS::TestFixture {
    CPPUNIT_TEST_SUITE(GenericListTest);

    CPPUNIT_TEST(shouldCreateAnEmptyListTest);
    CPPUNIT_TEST(isEmptyTest);
    CPPUNIT_TEST(sizeOfListMustBeZeroAfterBeingCreatedTest);
    CPPUNIT_TEST(addElementsToTheListTest);
    CPPUNIT_TEST(removeElementsFromTheList);
    CPPUNIT_TEST(shouldntRemoveAnElementIfThisDoesntExistTest);
    CPPUNIT_TEST(getAnElementGivenAPositionTest);
    CPPUNIT_TEST(shouldntGetAnElementInAnInvalidPositionTest);
    CPPUNIT_TEST_SUITE_END();

public:
    GenericListTest();
    virtual ~GenericListTest();
    void setUp();
    void tearDown();

private:

    void shouldCreateAnEmptyListTest();
    void isEmptyTest();
    void sizeOfListMustBeZeroAfterBeingCreatedTest();
    void addElementsToTheListTest();
    void removeElementsFromTheList();
    void shouldntRemoveAnElementIfThisDoesntExistTest();
    void getAnElementGivenAPositionTest();
    void shouldntGetAnElementInAnInvalidPositionTest();

};

#endif	/* GENERICLISTTEST_H */

